/// <summary>
/// CS 04/05 All Trace switch used through AddonNice code
/// Uses the framework native functions
/// These switches allow to set a trace level in web.config
/// 
/// </summary>

/* $RCSFile: TraceSwitch.cs $
 * Apache license v2 2011 by Christian Surieux
 * $Source: ?/ADNCRM.Core/Configuration/TraceSwitch.cs $
 * $log$
 * Revision 19 2011/02/22 01:23:08  christian.surieux
 *   V4 Migration 22/2/11
 * Revision 19 2011/02/22 01:22:09  christian.surieux
 *   V4 Migration 22/2/11
 * Revision 6 2010/08/06 19:56:27  christian.surieux
 *   Added Log to All cs files
 */

using System;
using System.Diagnostics;

namespace AddonNice.Diagnostics
{
	#region Base TraceSwitch classe that define some usefull properties
	public class ADNTraceSwitch : TraceSwitch
	{
		public ADNTraceSwitch()
			: base("DefaultTrace","Base Trace Switch for Core AddonNice switch, do not use directly")
		{ }
		public ADNTraceSwitch(string nm, string des)
			: base(nm, des)
		{ }
		public string Info{ get{ return string.Format("{0}-{1}",DisplayName,Level);}}
	}
	#endregion Base TraceSwitch classe that define some usefull properties

	
	#region TraceSwitch for Core Classes
	public class CoreTraceSwitch : ADNTraceSwitch
	{
		static public ADNTraceSwitch	Sw = new ADNTraceSwitch("CoreTrace","Trace Switch for Core methods");
	}
	#endregion TraceSwitch Core Classes

	#region TraceSwitch for All Resource provider access
	public class ResourceTraceSwitch : ADNTraceSwitch
	{
		static public ADNTraceSwitch	Sw	=	new ADNTraceSwitch("ResourceTrace","Trace Switch for all Resource access");
	}
	#endregion TraceSwitch for All Resource provider access

	#region TraceSwitch for Global
	public class GlobalTraceSwitch : ADNTraceSwitch
	{
		static public ADNTraceSwitch	Sw	=	new ADNTraceSwitch("GlobalTrace","Trace Switch for Global");
	}
	#endregion TraceSwitch for Global

	#region TraceSwitch for Page Themes
	public class PageThemesTrace : ADNTraceSwitch
	{
		static public ADNTraceSwitch	Sw	=	new ADNTraceSwitch("PageThemesTrace","Trace Switch for Page Themes (Net2)");
	}
	#endregion TraceSwitch for Page Themes

	#region TraceSwitch for Modules Layouts
	public class ModulesLayoutTrace : ADNTraceSwitch
	{
		static public ADNTraceSwitch	Sw	=	new ADNTraceSwitch("ModulesLayoutTrace","Trace Switch for Modules Themes (Internal)");
	}
	#endregion TraceSwitch for Modules Layouts

	#region TraceSwitch for install
	public class InstallTraceSwitch : ADNTraceSwitch
	{
		static public ADNTraceSwitch Sw = new ADNTraceSwitch("InstallTrace", "Trace Switch for Install");
	}
	#endregion TraceSwitch for Install


	#region Login Trace switch
	public class LoginTrace : ADNTraceSwitch
	{
		static public ADNTraceSwitch	Sw	=	new ADNTraceSwitch("LoginTrace","Trace Switch for Login");
	}
	#endregion Login Trace switch

	#region Monitoring Trace switch
	public class MonitoringTrace
	{
		static public ADNTraceSwitch	Sw	=	new ADNTraceSwitch("MonitoringTrace","Trace Switch for Monitoring");
	}
	#endregion Monitoring Trace switch
	
	#region TraceSwitch for all Http Handlers related func
	public class HttpHandlerTrace
	{
		static public ADNTraceSwitch	Sw	=	new ADNTraceSwitch("HttpHandlerTrace","Trace Switch for Http Handlers");
	}
	#endregion TraceSwitch for all Http Handlers related func

	#region TraceSwitch for all Page related func
	public class PageTraceSwitch
	{
		static public ADNTraceSwitch	Sw	=	new ADNTraceSwitch("PageTrace","Trace Switch for Page");
	}
	#endregion TraceSwitch for all Page related func

	#region TraceSwitch for all Menu Navigation related func
	public class NavTraceSwitch
	{
		static public ADNTraceSwitch Sw = new ADNTraceSwitch("NavigationTrace", "Trace Switch for Menu Navigation");
	}
	#endregion TraceSwitch for all Menu Navigation related func

	#region TraceSwitch for all Menu Skins related func
	public class SkinsTraceSwitch
	{
		static public ADNTraceSwitch Sw = new ADNTraceSwitch("SkinsTrace", "Trace Switch for Menu Skins");
	}
	#endregion TraceSwitch for all Menu Skins related func

	#region TraceSwitch for all ModuleButtons related func
	public class ButtonTraceSwitch : ADNTraceSwitch
	{
		static public ADNTraceSwitch Sw = new ADNTraceSwitch("ButtonTrace", "Trace Switch for ModuleButton");
	}
	#endregion TraceSwitch for all Page related func

	#region TraceSwitch for all Settings related func
	public class SettingsTraceSwitch : ADNTraceSwitch
	{
		static public ADNTraceSwitch Sw = new ADNTraceSwitch("SettingsTrace", "Trace Switch for Settings");
	}
	#endregion TraceSwitch for all Settings related func

	#region TraceSwitch for all DataType related func
	public class DataTypeTraceSwitch : ADNTraceSwitch
	{
		static public ADNTraceSwitch Sw = new ADNTraceSwitch("DataTypeTrace", "Trace Switch for DataType");
	}
	#endregion TraceSwitch for all DataType related func

	#region TraceSwitch for all MasterPage related func
	public class MasterPageTraceSwitch : ADNTraceSwitch
	{
		static public ADNTraceSwitch Sw = new ADNTraceSwitch("MasterPageTrace", "Trace Switch for MasterPage");
	}
	#endregion TraceSwitch for all MasterPage related func

	#region TraceSwitch for all WebControls
	public class WebControlsTraceSwitch : ADNTraceSwitch
	{
		static public ADNTraceSwitch	Sw	=	new ADNTraceSwitch("WebControlsTrace","Trace Switch for WebControls");
	}
	#endregion TraceSwitch for all WebControls

	#region TraceSwitch for PortalModuleControl
	public class ModuleTraceSwitch : ADNTraceSwitch
	{
		static public ADNTraceSwitch	Sw	=	new ADNTraceSwitch("ModuleTrace","General Trace Switch for Modules");
	}
	#endregion TraceSwitch for PortalModuleControl

	#region TraceSwitch for SmartError
	public class SmartErrorTraceSwitch : ADNTraceSwitch
	{
		static public ADNTraceSwitch	Sw	=	new ADNTraceSwitch("SmartErrorTrace","General Trace Switch for SmartError");
	}
	#endregion TraceSwitch for ErrorTraceSwitch

	#region TraceSwitch for Magic Urls
	public class MagicTraceSwitch : ADNTraceSwitch
	{
		static public ADNTraceSwitch	Sw	=	new ADNTraceSwitch("MagicTrace","General Trace Switch for Magic Urls");
	}
	#endregion TraceSwitch for Magic Urls

	#region TraceSwitch for All DB Access
	public class DBTraceSwitch : ADNTraceSwitch
	{
		static public ADNTraceSwitch	Sw	=	new ADNTraceSwitch("DBTrace","Trace Switch for all database Access");
	}
	#endregion TraceSwitch for All DB Access

	#region TraceSwitch for Countries
	public class CountryTraceSwitch : ADNTraceSwitch
	{
		static public ADNTraceSwitch	Sw	=	new ADNTraceSwitch("CountryTrace","General Trace Switch for Countries");
	}
	#endregion TraceSwitch for Countries

	#region TraceSwitch for UrlBuilder
	public class UrlBuilderTrace : ADNTraceSwitch
	{
		static public ADNTraceSwitch	Sw	=	new ADNTraceSwitch("UrlBuilderTrace","General Trace Switch UrlBuilder");
	}
	#endregion TraceSwitch for Countries

	#region TraceSwitch for cacheManager
	
	public class CacheManagerTrace : ADNTraceSwitch
	{
		static public ADNTraceSwitch	Sw	 =	new ADNTraceSwitch("CacheManagerTrace","Special Trace Switch for CacheManager");
	}
	
	#endregion TraceSwitch for cacheManager
}